/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entidades;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.*;

import pkEntidades.RequisicaoCompraPK;

/**
 * 
 * @author thiago
 */
@Entity
@Table(name = "RequisicaoCompra")
public class RequisicaoCompra implements Serializable {

	private static final long serialVersionUID = 1L;

	@EmbeddedId
	private pkEntidades.RequisicaoCompraPK chave;

	private Usuario criadoPor;
	@Temporal(javax.persistence.TemporalType.DATE)
	private Date dataCriacao;
	private String horaCriacao;
	@ManyToOne
	private Status status;
	private CentroDeCusto centroCusto;
	@ManyToOne
	private Urgencia urgencia;
	@Temporal(javax.persistence.TemporalType.DATE)
	private Date dataPlanejada;
	private String informacoesAdicionais;
	@ManyToOne
	private Usuario modificadoPor;
	@Temporal(javax.persistence.TemporalType.DATE)
	private Date dataModificacao;
	private String horaModificacao;
	@ManyToOne
	private Usuario aprovadoPor;	
	@Temporal(javax.persistence.TemporalType.DATE)
	private Date dataAprovacao;	
	private String horaAprovacao;
	@ManyToMany
	private List<Produto> produto; 

	public RequisicaoCompra() {

	}

	public RequisicaoCompra(long numeroRequisicao, long itemRequisicaoCompra,
			Usuario criadoPor, Date dataCriacao, String horaCriacao,
			Status status, CentroDeCusto centroCusto, Urgencia urgencia,
			Date dataPlanejada, String informacoesAdicionais,
			Usuario modificadoPor, Date dataModificacao, String horaModificacao,
			Usuario aprovadoPor, Date dataAprovacao, String horaAprovacao,
			List<Produto> produto) {
		chave = new RequisicaoCompraPK();
		chave.setNumeroRequisicao(numeroRequisicao);
		chave.setItemRequisicaoCompra(itemRequisicaoCompra);
		
		this.criadoPor = criadoPor;
		this.dataCriacao = dataCriacao;
		this.horaCriacao = horaCriacao;
		this.status = status;
		this.centroCusto = centroCusto;
		this.urgencia = urgencia;
		this.dataPlanejada = dataPlanejada;
		this.informacoesAdicionais = informacoesAdicionais;
		this.modificadoPor = modificadoPor;
		this.dataModificacao = dataModificacao;
		this.horaModificacao = horaModificacao;
		this.aprovadoPor = aprovadoPor;
		this.dataAprovacao = dataAprovacao;
		this.horaAprovacao = horaAprovacao;
		this.produto = produto;

	}

	public pkEntidades.RequisicaoCompraPK getChave() {
		return chave;
	}

	public void setChave(pkEntidades.RequisicaoCompraPK chave) {
		this.chave = chave;
	}

	public Usuario getCriadoPor() {
		return criadoPor;
	}

	public void setCriadoPor(Usuario criadoPor) {
		this.criadoPor = criadoPor;
	}

	public Date getDataCriacao() {
		return dataCriacao;
	}

	public void setDataCriacao(Date dataCriacao) {
		this.dataCriacao = dataCriacao;
	}

	

	public String getHoraCriacao() {
		return horaCriacao;
	}

	public void setHoraCriacao(String horaCriacao) {
		this.horaCriacao = horaCriacao;
	}

	public Status getStatus() {
		return status;
	}

	public void setStatus(Status status) {
		this.status = status;
	}

	public CentroDeCusto getCentroCusto() {
		return centroCusto;
	}

	public void setCentroCusto(CentroDeCusto centroCusto) {
		this.centroCusto = centroCusto;
	}

	public Urgencia getUrgencia() {
		return urgencia;
	}

	public void setUrgencia(Urgencia urgencia) {
		this.urgencia = urgencia;
	}

	public Date getDataPlanejada() {
		return dataPlanejada;
	}

	public void setDataPlanejada(Date dataPlanejada) {
		this.dataPlanejada = dataPlanejada;
	}

	public String getInformacoesAdicionais() {
		return informacoesAdicionais;
	}

	public void setInformacoesAdicionais(String informacoesAdicionais) {
		this.informacoesAdicionais = informacoesAdicionais;
	}

	public Usuario getModificadoPor() {
		return modificadoPor;
	}

	public void setModificadoPor(Usuario modificadoPor) {
		this.modificadoPor = modificadoPor;
	}

	public Date getDataModificacao() {
		return dataModificacao;
	}

	public void setDataModificacao(Date dataModificacao) {
		this.dataModificacao = dataModificacao;
	}

	
	public Usuario getAprovadoPor() {
		return aprovadoPor;
	}

	public void setAprovadoPor(Usuario aprovadoPor) {
		this.aprovadoPor = aprovadoPor;
	}

	public Date getDataAprovacao() {
		return dataAprovacao;
	}

	public void setDataAprovacao(Date dataAprovacao) {
		this.dataAprovacao = dataAprovacao;
	}

	public String getHoraModificacao() {
		return horaModificacao;
	}

	public void setHoraModificacao(String horaModificacao) {
		this.horaModificacao = horaModificacao;
	}

	public String getHoraAprovacao() {
		return horaAprovacao;
	}

	public void setHoraAprovacao(String horaAprovacao) {
		this.horaAprovacao = horaAprovacao;
	}

	public List<Produto> getProduto() {
		return produto;
	}

	public void setProduto(List<Produto> produto) {
		this.produto = produto;
	}
	
	
	
}
